#include "secret_key.h"

/*
 * @brief SecretKey 类的构造函数，用于初始化一个新的密钥对象。
 *
 * @param context：加密方案的上下文对象，包含了加密过程中需要的各种参数。
 *
 * 该构造函数根据给定的上下文对象 `context`，为 `SecretKey` 类分配内存并生成密钥数据。
 * 密钥数据存储在 `sx` 数组中，初始化时通过调用 `SampleHWT` 函数进行随机采样，并通过 NTT 转换处理。
 */
SecretKey::SecretKey(Context &context)
{
    sx = new uint64_t[context.N * (context.L + context.K)]();
    context.SampleHWT(sx, context.L, context.K);
    context.NTTAndEqual(sx, context.L, context.K);
}
